package edu.geo.exception;

import java.io.Serializable;
import java.text.MessageFormat;

import org.apache.commons.logging.Log;

/**
 * 
 * @author alejandro.sanchez
 *
 */
public class GeoInfoException extends Exception implements Serializable {
	
	/**
	 * 
	 */
	private static final long serialVersionUID = 7398413007868246970L;

	private String errorCode;

    private ESeverity severity;   
    
   
    
    public GeoInfoException(String errorCode, ESeverity severity, String mensaje) {
		super(mensaje);
    	this.errorCode = errorCode;
		this.severity = severity;
	}

    public GeoInfoException(String errorCode, ESeverity severity, String mensaje, Exception e) {
		super(mensaje, e);
		this.errorCode = errorCode;
		this.severity = severity;
	}

	public String getErrorCode() {
        return errorCode;
    }

    public void setErrorCode(String errorCode) {
        this.errorCode = errorCode;
    }

    public ESeverity getSeverity() {
        return severity;
    } 
    
    
    public GeoInfoException getExcepcion(Log logger, Exception excepcionNativa,
			Object... params) {
		String mensaje = super.getMessage();
		if (params != null) {
			mensaje = MessageFormat.format(mensaje, params);
		}
		logger.error(mensaje, excepcionNativa);
		return new GeoInfoException(getErrorCode(),
				getSeverity(), mensaje);		
	}
}
